home *** CD-ROM | disk | FTP | other *** search
- #include <math.h>
-
- /* apply a filter */
-
- double filter( double s[], double y[],double A[]
- double a[],int n, int N)
- {
- double sum=0.; int k;
- for(k=0;k<n;k++) sum += a[k]*s[n-k];
- for(k=1;k<N;k++) sum += A[k]*y[N-k];
- return (y[n]=sum);
- }
-
- /* Set coefficients for two typical low-pass
- windowing filters */
-
- /* window size 2n-1 */
-
- hamming(double a[],int n)
- {
- int k,m=(n<<1)-1;double c;
- c=3.14159265358979323/n;
- for(k=0;k<m;k++) a[k]=.54+.46*cos( c*k );
- }
-
- /* the Hanning window is another possible
- winder choice*/
-
- hanning(double a[],int n)
- {
- int k,m=(n<<1)-1;double c;
- c=3.14159265358979323/n;
- for(k=0;k<m;k++) a[k]=.5+.5*cos( c*k );
- }
-